package site.isscloud.project.mapper;

import org.apache.ibatis.annotations.Param;
import site.isscloud.project.domain.DeviceChannel;
import site.isscloud.project.domain.PjRealtimeTemperatureData;
import site.isscloud.project.domain.TemperatureOverview;

import java.util.List;

/**
 * 实时温度数据Mapper接口
 */
public interface PjRealtimeTemperatureDataMapper {

    List<DeviceChannel> selectDistinctDeviceChannels();

    List<PjRealtimeTemperatureData> selectMinuteRealtimeData(@Param("deviceNo") String deviceNo,
                                                             @Param("channelNo") Integer channelNo,
                                                             @Param("statTime") String statTime);

    /**
     * 获取最新温度数据
     */
    PjRealtimeTemperatureData selectLatestTemperatureData(@Param("deviceNo") String deviceNo,
                                                @Param("channelNo") Integer channelNo);

    /**
     * 获取温度数据概览统计
     */
    TemperatureOverview selectTemperatureOverview();

    /**
     * 获取指定时间范围的温度数据
     */
    List<PjRealtimeTemperatureData> selectTemperatureDataByTimeRange(@Param("deviceNo") String deviceNo,
                                                           @Param("channelNo") Integer channelNo,
                                                           @Param("startTime") String startTime,
                                                           @Param("endTime") String endTime);

    /**
     * 获取设备通道的最新温度数据
     */
    List<PjRealtimeTemperatureData> selectLatestTemperatureDataByDeviceChannel();

    // 在 site.isscloud.project.mapper.PjRealtimeTemperatureDataMapper.java 中添加
    /**
     * 新增实时温度数据
     */
    int insertPjRealtimeTemperatureData(PjRealtimeTemperatureData pjRealtimeTemperatureData);

    /**
     * 批量新增实时温度数据
     */
    int batchInsertPjRealtimeTemperatureData(List<PjRealtimeTemperatureData> pjRealtimeTemperatureDataList);
}